﻿using System;
using System.Collections.Generic;


namespace epicenter2010.Domain.Service
{
	/// <summary>
	/// bstack @ 05/06/2010
	/// Process order request
	/// </summary>
	public class ProcessOrderRequest
	{
		/// <summary>
		/// Customer Id
		/// </summary>
		public readonly int CustomerId;

		/// <summary>
		/// Description
		/// </summary>
		public readonly string Description;

		/// <summary>
		/// Initial order item
		/// </summary>
		public readonly epicenter2010.Domain.Entity.OrderItem InitialOrderItem;


		/// <summary>
		/// Ctor
		/// </summary>
		/// <param name="customerId"></param>
		/// <param name="description"></param>
		/// <param name="initialOrderItem"></param>
		public ProcessOrderRequest(
			int customerId,
			string description,
			epicenter2010.Domain.Entity.OrderItem initialOrderItem)
		{
			epicenter2010.Common.DBCChecker.RequireArgument("customerId", customerId > 0, "Invalid argument");
			epicenter2010.Common.DBCChecker.RequireArgumentNotEmpty("description", description);
			epicenter2010.Common.DBCChecker.RequireArgumentNotNull("initialOrderItem", initialOrderItem);
			
			this.CustomerId = customerId;
			this.Description = description;
			this.InitialOrderItem = initialOrderItem;
		}
	}
}
